package com.parking.user.service;

import com.parking.dto.UserCarDtos;
import com.parking.dto.UserDto;
import com.parking.form.AddUserCarForm;
import com.parking.form.UpUserCarForm;
import com.parking.form.UserCarForm;
import com.parking.user.entity.UserCar;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author 香菜狗带
 * @since 2023年11月28日
 */
public interface UserCarService extends IService<UserCar> {
//    /**
//     * 判断用户车牌号是否正确
//     *  phone:用户电话
//     * userRealName:用户姓名
//     * userCarBrand:用户车牌号
//     * */
//    Boolean userCarBrand(UserCarForm form);
    /**
     * 新增用户车辆信息
     * 参数：
     * userCarPlate：车牌号
     * userCarBrand：车牌品牌
     * userInfoId：用户信息id
     * carContacts：车辆信息
     * carContractsTek：车辆联系人电话
     * carType：车辆类型
     * */
    void addUserCar(AddUserCarForm form, Integer userId);
    /**
     * 修改用户车辆信息
     * 参数：
     * userCarPlate：车牌号
     * userCarBrand：车牌品牌
     * carContacts：车辆信息
     * carContractsTek：车辆联系人电话
     * carType：车辆类型
     * */
//    void upUserCarData(UpUserCarForm form, Integer userId);
    /**
     * 删除用户车辆信息
     * 参数：
     * 用户车辆Id:userCarId
     * */
    void delUserCarData(Integer userCarId, Integer userId) throws Exception;
    /**
     * 当前用户全部车辆信息
     * 参数：
     * authorization:令牌
     *
     * */
    List<UserCarDtos> findUserCarById(Integer userId);
    /**
     * 根据Id查询用户车辆
     * 参数: 用户车辆Id userCarId
     * 返回: 车牌号 userCarPlate
     * 车辆联系人 carContacts
     * 车辆联系人电话 carContractsTek
     * 用户信息Id    userInfoId
     * 方法: 1.判断userCarId是否存在对应的用户车辆信息 若不存在则抛异常 若被删除也抛异常
     * 3.将用户车辆放入Dto返回
     */
    UserCar getUserCatById(Integer userCarId);
}
